<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<div id="target"></div>
<script type='text/javascript'>
const kElements = 20000;

const selection = getSelection();
let range;

PerfTestRunner.measureTime({
  description: `Measures performance of add a Range in a DOM tree of ${kElements} elements`,
  setup: () => {
    const fragments = []
    for (let i = 0; i < kElements; ++i)
      fragments.push(`<span>foo bar baz ${i} </span>`);
    target.innerHTML = fragments.join('');

    range = document.createRange();
    range.setStart(target, 0);
  },
  run: () => {
    selection.removeAllRanges();
    selection.addRange(range);
  },
  done: () => {
    target.innerHTML = '';
  }
});
</script>
